package test.work.service;

import java.util.Comparator;
import java.util.Scanner;

import test.work.dao.InterfaceDao;
import test.work.vo.Student;

public class StudentService extends ItemService<Student> {

	public StudentService(InterfaceDao<Student> dao, Scanner sc) {
		super(dao, sc);//ItemService를 호출
	}

	@Override
	public Student inputItemInfo(boolean gubun) {
		System.out.println("학번 이름");//선택지
		Student std = new Student(sc.nextInt(), sc.next());//학번, 이름 입력받음
		if(gubun){//인자로 true를 넘겨줄 경우
			System.out.println("국어 영어 수학");//모든 정보 입력
			std.setKor(sc.nextInt());
			std.setEng(sc.nextInt());
			std.setMath(sc.nextInt());				
		}
		return std;
	}

	@Override
	public void prnSubMenu() {//정렬을 선택할 경우 서브메뉴 출력
		System.out.println("정렬[1. 이름  2. 성적 3. 학번]");//선택지
		switch (sc.nextInt()) {
			case 1://이름순으로 정렬할 경우
				dao.prnItemList(new Comparator<Student>() {//Comparator 익명클래스
					@Override
					public int compare(Student o1, Student o2) {//이름순
						return o1.getStdName().hashCode()-o2.getStdName().hashCode();
					}
				});
			break;
			case 2://성적순으로 정렬할 경우
				dao.prnItemList(new Comparator<Student>() {//Comparator 익명클래스
					@Override
					public int compare(Student o1, Student o2) {
						return o1.sumScore()-o2.sumScore();
					}
				});
			break;
			case 3:
				dao.prnItemList(null);//학번순 기본정렬
				break;
		}
	}
}
